package com.jt.provider.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.sound.midi.Soundbank;

@RestController
@RefreshScope  //监听配置中心的配置是否更改，如果更改则重新创建一个对象
public class ProviderLogController {
    public ProviderLogController(){
        System.out.println("创建了一个对象");
    }
    /**
     * org.slf4j.Logger 是一组日志API规范
     * 作者推出这组规范最主要的目的是挟天子令诸侯
     * 希望让这组接口称为日志门面对象（面门模式）
     * 既然打架都这么玩，所以我们也建议项目中所有
     * 日志相关API都使用slf4j
     * */
    private static Logger log =
            LoggerFactory.getLogger(ProviderLogController.class);
    @GetMapping("/provider/log/doLog01")
    public String doLog01(){  //日志级别，trace<debug<info<warn<error
//        System.out.println("==doLog01==");
//        System.err.println();//错误日志输出，不分日志级别
        log.trace("===trace===");//跟踪
        log.debug("===debug===");//级别低，随意使用
        log.info("===info===");//重要，输出信息，回馈最终客户
        log.warn("===warn===");//警告
        log.error("===error===");//报错
        return "log config test";
    }
    @Value(value = "${logging.level.com.jt:error}")
    private String logLevel;

    @GetMapping("/provider/log/doLog02")
    public String doLog02(){
        log.trace("===trace===");//跟踪
        log.debug("===debug===");//级别低，随意使用
        log.info("===info===");//重要，输出信息，回馈最终客户
        log.warn("===warn===");//警告
        log.error("===error===");//报错
        return "log level is" + logLevel;

    }
}
